#ifndef PREP_IMG_H
#define PREP_IMG_H

#include <vector>
#include <opencv2/opencv.hpp>

/**
 * @brief Preprocess images using IPP (Intel Performance Primitives).
 *
 * @param images The vector of input images to preprocess.
 * @param target_width The desired width of the preprocessed images.
 * @param target_height The desired height of the preprocessed images.
 * @param mean_val The mean value used for padding.
 * @return A vector of preprocessed images.
 */
std::vector<cv::Mat> IPP_preprocess_image(
    std::vector<cv::Mat> &images,
    int target_width,
    int target_height,
    const cv::Scalar &mean_val
    );

/**
 * @brief Preprocess images using OpenCV.
 *
 * @param images The vector of input images to preprocess.
 * @param target_width The desired width of the preprocessed images.
 * @param target_height The desired height of the preprocessed images.
 * @param mean_val The mean value used for padding.
 * @return A vector of preprocessed images.
 */
std::vector<cv::Mat> preprocess_image(
    std::vector<cv::Mat> &images,
    int target_width,
    int target_height,
    const cv::Scalar &mean_val
    );

#endif // PREP_IMG_H